import Vue from 'vue'

let v = new Vue();
const HttpUtil = {}

//检查http异常
HttpUtil.checkHttpErr = function (err) {
    if (err.response.status === 401) {
        v.$confirm('会话已失效请重新登录', '会话失效提醒', {
            confirmButtonText: '确定',
            type: 'warning'
        }).then(() => {
            localStorage.removeItem('ms_username')
            window.location.href = "/"
        }).catch(() => {
            //取消删除
        });
    } else {
        v.$message.error(JSON.stringify(err.response))
    }
}

//获取axios post 以multipart/form-data形式上传时的配置参数
HttpUtil.getMultiPostConfig = function (callBack) {
    //上传进度回调
    function onUploadProgress(progressEvent) {
        if (progressEvent.lengthComputable) {
            let val = (progressEvent.loaded / progressEvent.total * 100).toFixed(0);
            val = parseInt(val)
            //这里的进度只能表明文件已经上传到后台，但是后台有没有处理完还不知道
            //因此不能直接显示为100%，不然用户会误以为已经上传完毕，关掉浏览器的话就可能导致上传失败
            //等响应回来时，再将进度设为100%
            if (val < 100)
                callBack(val)
        }
    }
    let config = {
        headers: {'Content-Type': 'multipart/form-data'},
        onUploadProgress: onUploadProgress
    };
    return config
}
export default HttpUtil